import axios from 'axios'
import router from '../router';
// 创建一个axios实例
const instance = axios.create({
    headers: {
      'content-type':'application/json'
    },
    timeout:10000,
    baseURL:'http://localhost:5000',
    // baseURL:'http://stuq.ceshiren.com:8089/',
    // auth: {
    //   username: 'admin',
    //   password: 'admin'
    // },
});
// axios HOOK 函数，在发送请求前会主动的调用些函数  token过期了不会自动更新???
instance.interceptors.request.use(function(config) {
    // 如遇 token 存在并不是登录接口，就把 token 加入到认证中
    if (localStorage.getItem("token") && config.url != "/login") {
      // auth = {k1: v1, k2: v2}
      config.auth = {username: localStorage.getItem("token"), password: ""}
    }
    // 作配置后要必须返回才生效
    return config;
});
instance.interceptors.response.use(
  (response) => {
    return response;
  },
  (error) => {
    // 如果请求结果状态码是401
    if (error.response) {
      if (error.response.status == 401) {
        // 清除token
        localStorage.removeItem("token");
        // 替换最上层路由的页面
        router.replace({name: "Login"});
        console.log("hello");
        console.log(error);
        // 拒绝请求
        return Promise.reject(error);
      }
    }
  }

)
// 导入实例
export default instance